// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	3/7/2015 8:41:52 PM				
// -----------------------------

#ifndef _Shader_h
#define _Shader_h

#include "Common.h"

namespace Flow
{

	class ShaderManager;

	class IInputLayout;
	class IVertexShader;
	class IPixelShader;

	class Shader
	{
	public:

		virtual ~Shader();

	protected:

		Shader(ShaderManager* lpManager, const tstring& vertexShader, const tstring& pixelShader, UInt32 inputLayout);

		IInputLayout*	m_lpInputLayout;
		IVertexShader*	m_lpVertexShader;
		IPixelShader*	m_lpPixelShader;


	private:

		Shader(const Shader& refShader);
		Shader& operator=(const Shader& refShader);
	};

}

#endif